import Taro, { Component, Config } from '@tarojs/taro'
import { Provider } from '@tarojs/mobx'
import Index from './pages/index'

import IndexStore from './store/index'
import InputStore from './store/input'
import ListStore from './store/list'
import DetailStore from './store/detail'
import FileStore from './store/file'

import './assets/styles/index.scss'
import './app.scss'

// 如果需要在 h5 环境中开启 React Devtools
// 取消以下注释：
// if (process.env.NODE_ENV !== 'production' && process.env.TARO_ENV === 'h5')  {
//   require('nerv-devtools')
// }

const store = {
  indexStore: new IndexStore(),
  inputStore: new InputStore(),
  listStore: new ListStore(),
  detailStore: new DetailStore(),
  fileStore: new FileStore(),
}

class App extends Component {

  /**
   * 指定config的类型声明为: Taro.Config
   *
   * 由于 typescript 对于 object 类型推导只能推出 Key 的基本类型
   * 对于像 navigationBarTextStyle: 'black' 这样的推导出的类型是 string
   * 提示和声明 navigationBarTextStyle: 'black' | 'white' 类型冲突, 需要显示声明类型
   */
  config: Config = {
    pages: [
      'pages/index/index',
      'pages/input/index',
      'pages/list/index',
      'pages/tool-list/index',
      'pages/tool-detail/index',
      'pages/question/index',
    ],
    window: {
      backgroundTextStyle: 'light',
      navigationBarBackgroundColor: '#fff',
      navigationBarTitleText: 'WeChat',
      navigationBarTextStyle: 'black'
    },
    // tabBar: {
    //   color: '#00caab',
    //   selectedColor: '#888888',
    //   list: [
    //     {
    //       pagePath: 'pages/chart/index',
    //       text: '首页',
    //       iconPath: './common/icons/png/chart-active.png',
    //       selectedIconPath: './common/icons/png/chart.png'
    //     },
    //     {
    //       pagePath: 'pages/chart-backup/index',
    //       text: '扫码',
    //       iconPath: './common/icons/png/chart-backup-active.png',
    //       selectedIconPath: './common/icons/png/chart-backup.png'
    //     },
    //     {
    //       pagePath: 'pages/head-width/index',
    //       text: '我的',
    //       iconPath: './common/icons/png/head-width-active.png',
    //       selectedIconPath: './common/icons/png/head-width.png'
    //     }
    //   ]
    // }
  }

  // 在 App 类中的 render() 函数没有实际作用
  // 请勿修改此函数
  render () {
    return (
      <Provider store={store}>
        <Index />
      </Provider>
    )
  }
}

Taro.render(<App />, document.getElementById('app'))
